package cz.pecinovsky.english.pojj.adv_demo.cesta_školou.hra;



/*******************************************************************************
 * Testovací třída HraTest slouží ke komplexnímu otestování
 * třídy HraCestaSkolou.
 *
 * @author    Jarmila Pavlíčková
 * @created    říjen 2008 (poslední změny)
 */
public class HraTest extends junit.framework.TestCase
{
	private HraCestaSkolou hra1;


//== KONSTRUKTORY A TOVÁRNÍ METODY =============================================

    /***************************************************************************
     * Vytvoří test se zadaným názvem.
     *
     * @param název  Název konstruovaného testu
     */
    public HraTest( String název )
    {
        super( název );
    }



//== PŘÍPRAVA A ÚKLID PŘÍPRAVDKU ===============================================

    /***************************************************************************
     * Vytvoření přípravku (fixture), tj. sady objektů, s nimiž budou všechny
     * testy pracovat a která se proto vytvoří před spuštěním každého testu.
     */
    protected void setUp()
    {
        hra1 = HraCestaSkolou.getHra();
//        hra1 = new HraCestaSkolou();
    }


    /***************************************************************************
     * Úklid po testu - tato metoda se spustí po vykonání každého testu.
     */
    protected void tearDown()
    {
    }



//== VLASTNÍ TESTY =============================================================

    /***************************************************************************
     * Testuje průběh hry, po zavolání každěho příkazu testuje, zda hra končí
     * a v jaké aktuální místnosti se hráč nachází.
     * Při dalším rozšiřování hry doporučujeme testovat i jaké věci nebo osoby
     * jsou v místnosti a jaké věci jsou v batohu hráče.
     *
     */
	public void testPrubehHry()
	{
	    assertEquals("hala", hra1.getHerniPlan().getAktualniMistnost().getNazev());
		hra1.zpracujPrikaz("jdi bufet");
		assertEquals(false, hra1.konecHry());
		assertEquals("bufet", hra1.getHerniPlan().getAktualniMistnost().getNazev());
		hra1.zpracujPrikaz("jdi pokoj");
		assertEquals(false, hra1.konecHry());
		assertEquals("bufet", hra1.getHerniPlan().getAktualniMistnost().getNazev());
		hra1.zpracujPrikaz("seber neco");
		assertEquals(false, hra1.konecHry());
		assertEquals("bufet", hra1.getHerniPlan().getAktualniMistnost().getNazev());
		hra1.zpracujPrikaz("napoveda");
		assertEquals(false, hra1.konecHry());
		assertEquals("bufet", hra1.getHerniPlan().getAktualniMistnost().getNazev());
		hra1.zpracujPrikaz("konec");
		assertEquals(true, hra1.konecHry());
		assertEquals("bufet", hra1.getHerniPlan().getAktualniMistnost().getNazev());
	}
}


